System, method, and computer program product for management of web page links

ABSTRACT

A system, method and computer program product for the management of web pages links is disclosed. The method includes, by detecting a broken link event to reach a web page, retrieving within a database of referenced web pages, a referenced identifier of the web page. By using the retrieved referenced identifier, identifying within a database of referencing web pages, zero or more page identifiers identifying zero or more web pages imbedding the broken link. Then, by using each retrieved web page identifier, identifying within a database of web sites, one or more web site identifiers, and generating a broken link notification for each retrieved web site identifier.

TECHNICAL FIELD

The present invention relates generally to the field of computer managedcommunication networks, and more particularly to a system and method forthe management of hypertext links embedded in web pages.

RELATED ART

The World Wide Web (“web”) is a system of server computers on theInternet that support the standards defining both the structure of a webpage and the protocol for passing information between client and servercomputers. Web pages are created using a so-called StructuredGeneralized Markup Language (“SGML”), such as HyperText Markup Language(“HTML”) or Extensible Markup Language (“XML”), to structure thepresentation of the text, graphics, audio, and video content of a webpage. The textual content of a web page includes hypertext linksembedded in the document text to allow the reader to click on thehypertext link in the document text to quickly access another, related,resource on the web. In addition, a software development environment andprogramming language such as JavaScript or Java may be used to createand modify programs called from the web page HTML code. A web pageauthor first creates or modifies a web page and then publishes the webpage on a web site to make it accessible to web users.

The web and HTML make it relatively easy for a web page author to createand update a web page. This not only promotes the proliferation ofinformation on the web, but also increases the risk that a hypertextlink in a web page may be altered improperly.

Web pages are frequently set up and designed in an eclectic manner.Often, there is insufficient provision made for embedded links orhotspots in such web pages that link to target web pages which no longerexist or that have been moved and are reachable at a new UniformResource Locator (“URL”). This could potentially lead to chaotic webbrowsing as the user wastes time going up blind alleys.

In addition, a web page author cannot guarantee that a web resourcereferenced by the web page is correct and still accessible via thehypertext link. A web page that contains out-of-date links is useless tothe web page user and causes the user to either continue examining otherlinks in the search result set, perform a new search, or abandon thesearch altogether. To a user of the web, the web page content and theaccuracy of the embedded hypertext links determine the reliability ofboth the web page and the hosting web site.

Proper management of a web site demands periodic testing of every webpage associated with the site by following every link on the web page totest the validity and reliability of the link. The responsibility forthis testing falls upon a web site manager. The web site managertypically determines the frequency of the link testing (e.g., once amonth), but relies upon either the web page author, or someone hired bythe author, to update the content, examine the hypertext links, andcorrect any errors. Since this testing requires a considerable amount oftime, the cost to assure that a web site's links are up-to-date willincrease in proportion to the number of links available on the web site.Though the number of accessible web sites will continue to increase, asimilar increase in the existence of accessible and inaccessible webpages will likely result. In addition, the manual nature of the linkchecking process described above is highly prone to error.

Web site management software exists, as disclosed, for example, in U.S.2004/0205076, which can detect a change in hypertext links embedded in aweb page and can notify the author of such change.

However, such web site management software still places on the authorthe task to update afterward the modified hypertext links which thenlimits the speed, growth, and efficiency of the web.

SUMMARY OF THE INVENTION

The present invention addresses the problems described above bydynamically updating the links embedded in web pages, and in any otherweb pages having similar references.

Accordingly, the present invention provides a system and a method forautomatically updating links embedded in web pages, thereby improvingthe quality and reliability of web sites.

The present invention further provides an automated web site managementsystem and method for increasing the accuracy of the hypertext linkinformation in a web page, as well as the accuracy of the content of websites, thereby increasing the efficiency of users searching the web.

An aspect of the present invention provides a method of managing webpage links in a computer network, comprising: upon detecting a brokenlink event to reach a web page, retrieving within a database ofreferenced web pages a referenced identifier of the web page; using theretrieved referenced identifier to identify within a database ofreferencing web pages zero or more page identifiers, the zero or morepage identifiers identifying zero or more web pages imbedding the brokenlink; using each retrieved web page identifier for identifying within adatabase of web sites one or more web site identifiers; and generating abroken link notification for each retrieved web site identifier.

In another aspect of the present invention, a computer program productthat includes a computer-readable storage medium having embeddedcomputer usable program code is provided. The computer-usable programcode can be configured to operate the method of the appended methodclaims when executed by a computer system.

Further aspects of the invention will now be described, by way ofimplementation and examples, with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWING

The above and other items, features and advantages of the invention willbe better understood by reading the following more particulardescription of the invention in conjunction with the figures.

FIG. 1 is a schematic diagram depicting an illustrative systemenvironment in accordance with an embodiment.

FIG. 2 shows a schema of an illustrative lifecycle manager databaseaccording to an embodiment.

FIG. 3 is a flow chart detailing an illustrative process for registeringa new web site according to an embodiment.

FIG. 4 is a flow chart detailing an illustrative process for updatingweb page tables according to an embodiment.

FIG. 5 is a flow chart detailing an illustrative process for processinga broken link event according to an embodiment.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the invention are described hereinafter by way ofexamples with reference to the accompanying figures and drawings.

FIG. 1 is a schematic diagram depicting an illustrative systemenvironment in accordance with an embodiment. A plurality of referencingweb servers 100 are connected with a plurality of referenced web servers110 through a network 130, such as the Internet. The referenced webservers 110 expose web pages linked to by web pages in the referencingweb servers 100. The referencing web servers 100 expose web pages thatcontain hypertext links to web pages exposed by the referenced webservers 110. A web pages lifecycle manager component 120 is coupled tothe referenced web servers 110 and to the referencing web servers 100.

For clarity of the description, the resources (referencing web servers100, referenced web servers 110, and web pages lifecycle manager 120)are represented and described as being of one type only. However, it isto be appreciated that the resources can belong to one or severalcategories.

The referencing web servers 100 provide web pages that contain hypertextlinks. The hypertext links refer to further web pages provided by thereferenced web servers 110. A referencing web server 100 contains alifecycle client 101. For the purpose of this description, the lifecycleclients 101 are represented in association with only the referencing webservers 100. In another embodiment, the lifecycle clients 101 are alsoavailable with the referenced web servers 110.

Each web site includes a lifecycle client 101. The lifecycle client 101becomes active when a web page is created, modified, or retired within aweb site under the control of the lifecycle client component 101, orwhen a notification related to such a web page is received. Thelifecycle client 101 fulfills several main functions, and supports theregistration by web page authors within the web pages lifecycle manager120.

In an embodiment, the registration comprises storing a unique identifierprovided by the web pages lifecycle manager 120 and using thisidentifier for all communications with the web pages lifecycle manager120. Further, the lifecycle client 101 communicates to the web pageslifecycle Manager 120: the addresses of the web pages exposed by the webservers within its control area; the hypertext links that such web pagesimbed; and any modification to previously communicated information. Thelifecycle client 101 is in an automated communication with the lifecyclemanager 120 to provide new web pages within a web site, with URLsreferenced in those web pages. Such communication may include anymodifications to previously sent information, including but not limitedto the deletion of previously declared web pages.

A lifecycle client 101, which receives notifications from the web pageslifecycle manager 120 of unavailable referenced URLs, automaticallyprocesses the information received, which can include but is not limitedto a marking in the referencing web page of the referenced link asunavailable, or the replacement of the URL associated with thereferencing hypertext link by a new URL, if such URL was communicated bythe web pages lifecycle manager 120 in its notification.

The lifecycle Client 101 also receives notifications from the web pageslifecycle manager 120 of dead links referenced within its control area,so that it can initiate corrective action such as alerting the author ofthe web page, and automatically updating the imbedded hypertext link.Automatic updating of the hypertext link can take the form of asubstitution by a different address if the notification from the webpages lifecycle manager 120 references a replacement link. At the least,automatic updating takes the form of a temporary marking that indicatesthat the target web page is unavailable.

The web pages lifecycle manager component 120 includes a lifecyclemanager server 121, which maintains a database 122 with all theinformation communicated by the lifecycle clients 101. An embodiment ofa database schema is further described with reference to FIG. 2. Thelifecycle manager server 121 assigns a unique identifier (Site_ID) toeach new lifecycle client 101 that registers with the lifecycle managerserver 121. The person skilled in the art will easily appreciate thatregistration can be performed within a direct communication between thelifecycle client 101 and the web pages lifecycle manager 120, or outsideof that communication, using means such as a sign-up on a web site ore-mail.

In an embodiment, all referenced web servers 110 and referencing webservers 100 implement the lifecycle client 101 function. Referencing webservers 100 that run the lifecycle client 101 function, pro-activelynotify the web pages lifecycle manager 120 when they retire a web pageor modify its address. For referenced web servers 110 that do notimplement the lifecycle client 101 function, the web pages lifecyclemanager 120 obtains the information that referenced web pages havebecome unavailable by regularly checking the availability of suchreferenced web pages. Upon detection of changes to referenced web pages,the lifecycle manager server 121 uses the information from its database122 to identify all the lifecycle clients 101 that are impacted by thechanges and notifies them automatically of such changes.

Referring now to FIG. 2, an illustration of the lifecycle managerdatabase 122 according to an embodiment is described. The database 122comprises three tables 200, 210, 220 indexed each by a primary key (PK)and linked with the other tables through foreign keys (FK).

The web sites table 200 contains a list of the web sites exposed by thereferencing web servers 100 or referenced web servers 110. The primarykey (PK) of the web sites table 200 is a site identifier (Site_ID) 201,which is an identifier generated uniquely by the web pages lifecyclemanager 120 for each registering web site. In an embodiment,registration occurs directly from a lifecycle client 101. Alternatively,for example in the case of referenced web servers 110 that do notimplement the lifecycle client 101 function registration occursmanually, for example using an E-mail address or a registration webpage, or any other means supported by the web pages lifecycle manager120. At the minimum, the attributes of the web sites table 200 includethe contact details 202 for the registering web site and its owner orwebmaster, as well as the Uniform Resource Locator (URL) 203 of theindex page of the web site.

The referencing pages table 210 includes a page identifier (Page_ID) 211primary key (PK), which uniquely indexes each web page declared by alifecycle client 101. Each Page_ID 211 is associated with one uniqueSite_ID 212 under a (primary key-foreign key) relationship 240. OneSite_ID 212 is associated with zero or more Page_ID 211. The referencingpages table 210 further contains, under each Page_ID 211, a list 213 ofweb pages on referenced web servers 110 to which the web page containshypertext links;

The referenced pages table 220 is populated dynamically from the websites table 200 and the referencing pages table 210. One entry, underprimary key (PK) Referenced_ID 221 is created by the lifecycle managerserver 121 for each newly identified referenced web page in thereferencing pages table 210. The URL field 203 is looked up in the websites table 200. If no match is found, an exception is raised. In anembodiment, the exception message is raised to the attention of theadministrator of the web pages lifecycle manager 120 who can identifyand contact the owner of the referenced page to propose registration. Ifa match is found, the corresponding Site_ID 201 is copied to the serverowner field 222. Further, the Page_ID 221 of the referencing page iscopied into the referencing pages field 223. For references to the sameweb page subsequently entered in the referencing rages table 210, thePage_ID 211 of this new referencing page is added to the list ofreferencing pages 223. Changes to the web sites table 200 andreferencing pages table 210, for example the deletion of references, arereflected in the referenced pages table 220 by the lifecycle managerserver 121.

Additional fields 204, 214, 224 may be part of the tables to containmetadata.

FIG. 3 depicts a high level flow chart of a process executed at web sitecreation for referencing a web site client according to an embodiment ofthe present invention. Processing starts at step 301 at the lifecycleclient 101 when the webmaster of a web site on a referencing web server100 makes it available on the world wide web. At step 303, a request issent from a lifecycle client 101 of a web client to the web pageslifecycle manager 120 for registration of a new web site.

Next step 305 checks if in return to the request of step 303 a lifecycleclient identifier (Site_ID 201) is received or not from the web pageslifecycle manager 120. If the identifier is received (branch Yes), thenthe process continues to step 309.

At step 309, the lifecycle client 101 sends attributes to the web pageslifecycle manager 120 to update the corresponding fields of the web sitetable 200. The attributes contains at least: contact means 202 andUniform Resource Locator (URL) 203 of the index page of the new web siteon the referencing web server 100. It is to be appreciated that contactmeans (e.g., an e-mail address) and URL may not be the only informationto be included in a web site table 200 and that additional informationmay be defined (e.g., metadata 204) without departing from the scope ofthe invention.

After step 309, the process enters a loop at step 311 by setting a pagecounter (i set to 0). Next step 313 tests the value of the counter. Ifthe counter is equal to the number of pages of the web site+1 (branchYES), the process ends at step 319, otherwise the process continues tostep 315 and loops back.

At step 315 a new entry is created into the referencing pages table 210to register the page number i of the created web site, and lists underthis entry all possible links to referenced web servers 110.

At step 317, the page counter is incremented and the process returns tostep 313.

Going back to step 305, if the lifecycle client identifier (Site_ID) isnot received (Branch NO), the process informs the webmaster of thefailure in registration at step 307, and the process ends at step 319.

FIG. 4 shows a process 400 for updating the referencing pages table 210according to an embodiment of the present invention. The process startsat step 401 when a modification event is detected by the lifecycleclient 101. At step 403, the lifecycle client 101 determines if themodification event corresponds to changes of an existing page or to thecreation of a new page.

If the modification applies to an existing page (branch No), then theprocess goes to step 409. At step 409, the lifecycle client 101 sends anupdate notification to the web pages lifecycle manager 120 requesting toupdate the corresponding entries in the referencing pages table 210. Theupdate can pertain to:

A) The list of Uniform Resource Locators (URLs) to referenced webservers 110 that the modified page links to through its imbeddedhypertext links. In this case, the web pages lifecycle manager 120 needsto update the list of referenced links in the referencing pages table210;B) The URL of the modified page itself. In this case, the web pageslifecycle manager 120 substitutes the previously registered URL for thenew URL;C) The deletion of one page or more from the web site. In this case, theweb pages lifecycle manager 120 needs to delete the correspondingentries in the referencing pages table 210; andD) The deletion of the web site. In this case, the web pages lifecyclemanager 120 initiates a general cleanup of all the information containsin its database 122 related to the deleted web site.

The process then ends on step 413.

Going back to step 403, if the modifications are the creation of a newweb page (Branch Yes), then the process goes to step 405. At step 405, arequest is sent to the lifecycle manager server 102 for new web pageregistration.

Next step 407 checks if in return to the request of step 405 a pageidentifier (Page_ID) is received or not. If the identifier is receivedwith the request (Branch Yes), then the process continues to step 409where the lifecycle client 101 sends an update notification to the webpages lifecycle manager 120 with the information of the new web page.The process ends on next step 413.

Going back to step 407, if the lifecycle client Identifier (ID) 208 isnot received (branch NO), the process informs the webmaster of thefailure in registration at step 411, and the process ends on step 413.

FIG. 5 shows a flow chart 500 for processing a broken or modified linkevent according to an embodiment of the present invention. The processstarts at step 501 when a broken or modified link event is detected. Thedetection may happen by means of pro-active communication of a web pagedeletion by a lifecycle client 101 co-residing with a referenced webserver 110. Alternatively, the detection of a broken link can come froma regular polling routine from the web pages lifecycle manager 120checking the availability of the referenced web pages; in this case, thebroken link event may be in the form of a 404 HTTP error message.

Next step 503 aims to establish how the broken link event was issued byretrieving the Referenced-ID within the referenced pages table 220.

At step 505, a check identifies the source of the broken link event. Ifthe event detected is issued from a lifecycle client 101 of a referencedweb server 110 (Branch Lifecycle Client), the process continues withstep 517 further described below.

If the event detected is the result of a polling operation (BranchRegular Polling), the process continues with step 507 to run severalsteps allowing the webmaster of the unavailable page to be contacted foradditional information, such as for example determining a new web pageURL to replace the unavailable URL. To this extent, at step 507, thecontact routine is started with a look up of the Site_ID 222 in thereferenced pages table 220. Using the Site_ID as a key to access the websites table 200, the process continues at step 509 to look up theassociated contact details 202.

Next at step 511, using the contact details, the process allowscontacting the webmaster of the referenced site. The contact may takethe form of an E-mail asking for confirmation of the deletion and otherinformation, like a possible replacement URL for the missing web page.

At step 513, after a response from the webmaster is received (branchYes) the process continues with step 515, otherwise if no response isreceived after timing out (branch No) the process goes to step 517. Atstep 515, the referencing pages table 210 and the referenced pages table220 are updated with the additional information received from thewebmaster.

Going next to step 517, either from the contact routine or from step 505directly, a process for notifying all lifecycle clients 101 impacted bythe broken link starts. A scan of the referenced pages table 220 is donefor retrieving all referencing pages (Page_ID) 223 listed under theReferenced_ID 221 of the unavailable page. The scan iterates until theEnd Of Table (EOT) is reached at step 519. When the EOT is reached(branch Yes) the process goes to step 527, otherwise, until the EOT isnot reached (branch No), the process continues with step 521.

At step 521, the process looks up the referencing page table 210 forretrieving the Site_ID 212 from the Page_ID 211 and uses the foundSite_ID to retrieve the associated contact details 202 from the websites table 200 at next step 523.

The process continues at step 525, adding the contact details (e.g.,e-mail address, text message destination number, or other means) to adynamically built distribution list.

Next, at step 527, a test is performed to check the end of the list.Step 527 checks if the list that is built dynamically is empty. If thedynamically built distribution list is empty (Branch Yes) the processends on step 531. If the dynamically build distribution list is notempty (Branch No), a notification is sent at step 529 to the humaninterfaces defined for the webmasters of the referencing web servers100. The process ends at step 531.

The present invention may be embodied as a method, system or computerprogram product. Accordingly, the present invention can take the form ofan entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment containing both hardware and software elements.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by, or in connection with a computersystem or any instruction execution system. For the purposes of thisdescription, a computer-usable or computer-readable medium can be anytangible (e.g., non-transitory) apparatus that can contain, store,communicate, propagate, or transport the program for use by, or inconnection with the instruction execution system, apparatus, or device.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device) or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk and an optical disk. Current examples of opticaldisks include compact disk-read only memory (CD-ROM), compactdisk-read/write (CD-R/W) and DVD. Other computer-readable medium caninclude a transmission media, such as those supporting the Internet, anintranet, or a magnetic storage device. Transmission media can includean electrical connection having one or more wires, an optical fiber, anoptical storage device, and a defined segment of the electromagnetspectrum through which digitally encoded content is wirelessly conveyedusing a carrier wave.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

It has to be appreciated that while the invention has been particularlyshown and described with reference to a preferred embodiment, variouschanges in form and detail may be made therein without departing fromthe spirit, and scope of the invention.

1. In a computer network, a method of managing web page links,comprising: upon detecting a broken link event to reach a web page,retrieving within a database of referenced web pages a referencedidentifier of the web page; using the retrieved referenced identifierfor identifying within a database of referencing web pages zero or morepage identifiers, the zero or more page identifiers identifying zero ormore web pages imbedding the broken link; using each retrieved web pageidentifier for identifying within a database of web sites one or moreweb site identifiers; and generating a broken link notification for eachretrieved web site identifier.
 2. The method of claim 1, furthercomprising, before the broken link event detection: receiving a web siteregistration request from a web client of the computer network; andgenerating a web site identifier for the web site, wherein the web siteidentifier points to web site information stored within the database ofweb sites.
 3. The method of claim 1, further comprising: receiving a webpage registration request for the web page from a web client of thecomputer network; and generating a referenced identifier for the webpage within the database of referenced web pages, wherein the referencedidentifier is further associated with a web site identifier.
 4. Themethod of claim 1, wherein the web site information comprises webmastercontact information and web site URL.
 5. The method of claim 1, whereinthe broken link notification generating further comprises: retrievingassociated webmaster contact and URL web site information for each website identifier.
 6. The method of claim 1, further comprising: receivinga web page link modification request from a web client of the computernetwork; determining whether the web page referenced in the web pagelink modification is registered within the database of referenced webpages; and in the case that the web page referenced in the web page linkmodification is registered within the database of referenced web pages,updating the one or more web pages imbedding the modified link withinthe database of referencing web pages.
 7. The method of claim 1, whereinthe referenced identifier is a primary key of the referenced web pagedatabase, the page identifier is a primary key of the referencing webpages database, and the site identifier is a primary key of the web sitedatabase.
 8. The method of claim 1, wherein the broken link event is a404 HTTP error message issued from a web client of the computer network.9. A system, comprising: at least one computing device configured tomanage web page links by performing actions including: upon detecting abroken link event to reach a web page, retrieving within a database ofreferenced web pages a referenced identifier of the web page; using theretrieved referenced identifier for identifying within a database ofreferencing web pages zero or more page identifiers, the zero or morepage identifiers identifying zero or more web pages imbedding the brokenlink; using each retrieved web page identifier for identifying within adatabase of web sites one or more web site identifiers; and generating abroken link notification for each retrieved web site identifier.
 10. Thesystem of claim 9, the actions further comprising, before the brokenlink event detection: receiving a web site registration request from aweb client of the computer network; and generating a web site identifierfor the web site, wherein the web site identifier points to web siteinformation stored within the database of web sites.
 11. The system ofclaim 9, the actions further comprising: receiving a web pageregistration request for the web page from a web client of the computernetwork; and generating a referenced identifier for the web page withinthe database of referenced web pages, wherein the referenced identifieris further associated with a web site identifier.
 12. The system ofclaim 9, wherein the web site information comprises webmaster contactinformation and web site URL.
 13. The system of claim 9, wherein thebroken link notification generating further comprises: retrievingassociated webmaster contact and URL web site information for each website identifier.
 14. The system of claim 9, the actions furthercomprising: receiving a web page link modification request from a webclient of the computer network; determining whether the web pagereferenced in the web page link modification is registered within thedatabase of referenced web pages; and in the case that the web pagereferenced in the web page link modification is registered within thedatabase of referenced web pages, updating the one or more web pagesimbedding the modified link within the database of referencing webpages.
 15. The system of claim 9, wherein the referenced identifier is aprimary key of the referenced web page database, the page identifier isa primary key of the referencing web pages database, and the siteidentifier is a primary key of the web site database.
 16. The system ofclaim 9, wherein the broken link event is a 404 HTTP error messageissued from a web client of the computer network.
 17. A computer programstored on a computer readable medium, which when executed by a computingdevice, manages web page links by performing actions including: upondetecting a broken link event to reach a web page, retrieving within adatabase of referenced web pages a referenced identifier of the webpage; using the retrieved referenced identifier for identifying within adatabase of referencing web pages zero or more page identifiers, thezero or more page identifiers identifying zero or more web pagesimbedding the broken link; using each retrieved web page identifier foridentifying within a database of web sites one or more web siteidentifiers; and generating a broken link notification for eachretrieved web site identifier.
 18. The computer program of claim 17,wherein the actions further comprise at least one of: A) receiving a website registration request from a web client of the computer network; andgenerating a web site identifier for the web site, wherein the web siteidentifier points to web site information stored within the database ofweb sites; and B) receiving a web page registration request for the webpage from a web client of the computer network; and generating areferenced identifier for the web page within the database of referencedweb pages, wherein the referenced identifier is further associated witha web site identifier.
 19. The computer program of claim 17, wherein theactions further comprise: receiving a web page link modification requestfrom a web client of the computer network; determining whether the webpage referenced in the web page link modification is registered withinthe database of referenced web pages; and in the case that the web pagereferenced in the web page link modification is registered within thedatabase of referenced web pages, updating the one or more web pagesimbedding the modified link within the database of referencing webpages.
 20. The computer program of claim 17, wherein the referencedidentifier is a primary key of the referenced web page database, thepage identifier is a primary key of the referencing web pages database,and the site identifier is a primary key of the web site database.